<?php
	if ($this->getUsuario() != null) {
		$urlCurso			=	constant('PARAMETRO_1');
		$cursoVisualizado	=	new Curso(null, $urlCurso);
		if ($cursoVisualizado->getIdCurso() != null) {
			//Usuario logado e curso existe
			if (!$this->getUsuario()->verificaInscricao($cursoVisualizado->getIdCurso(), 'Aluno')) {
				//Usuario nao inscrito
				if ($_POST) {
					if (isset($_POST['btnInscrever'])) {
						
						$codigoInscricaoCorreto = false;
						if ($cursoVisualizado->getCodigoInscricao() == stripslashes(pegaPost('strCodigoInscricao'))) {
							$codigoInscricaoCorreto = true;
						}
						
						if ($cursoVisualizado->getCodigoInscricao() == null || $codigoInscricaoCorreto) {
							
							$exibirEmail	=	pegaPost('strExibirEmail') == 'sim' ? true : false;
							$receberEmail	=	pegaPost('strReceberEmail') == 'sim' ? true : false;
							
							if ($cursoVisualizado->inscreverUsuario($this->getUsuario()->getIdUsuario(), null, null, 'Aluno', $exibirEmail, $receberEmail, false)) {
								$erro = false;
								foreach($_POST as $chave => $post) {
									if (preg_match('/^respostaPergunta[0-9]+$/', $chave) && $post != "") {
										//Perguntas sem alternativa
										if (!PerguntaInscricao::responderPergunta($this->getUsuario()->getIdUsuario(), $cursoVisualizado->getIdCurso(), str_replace('respostaPergunta', '', $chave), null, $post))
											$erro	=	true;
									}
									if (preg_match('/^respostaPergunta[0-9]+Alternativa$/', $chave) && $post != "") {
										//Perguntas com uma alternativa
										$arrayId	=	array();
										preg_match('/^respostaPergunta([0-9]+)Alternativa$/', $chave, $arrayId);
	
										$idPergunta		=	$arrayId[1];
										
										$arrayAuxiliar	=	array();
										preg_match('/^([0-9]+)\|\|(.*)$/', $post, $arrayAuxiliar);
										
										$idAlternativa	=	$arrayAuxiliar[1];
										$alternativa	=	$arrayAuxiliar[2];
	
										if (!PerguntaInscricao::responderPergunta($this->getUsuario()->getIdUsuario(), $cursoVisualizado->getIdCurso(), $idPergunta, $idAlternativa, $alternativa))
											$erro	=	true;
									}
									if (preg_match('/^respostaPergunta[0-9]+Alternativa[0-9]+$/', $chave) && $post != "") {
										//Perguntas com múltiplas alternativas
										$arrayId	=	array();
										preg_match('/^respostaPergunta([0-9]+)Alternativa([0-9]+)$/', $chave, $arrayId);
	
										$idPergunta		=	$arrayId[1];
										$idAlternativa	=	$arrayId[2];
										$alternativa	=	preg_replace('/^[0-9]+\|\|/', '', $post);
	
										if (!PerguntaInscricao::responderPergunta($this->getUsuario()->getIdUsuario(), $cursoVisualizado->getIdCurso(), $idPergunta, $idAlternativa, $alternativa))
											$erro	=	true;
									}
								}
								if (!$erro) adicionaMensagem(texto('MENSAGEM_INSCRICAO_COM_SUCESSO'));
								redireciona(array('curso', $cursoVisualizado->getUrlCurso()));
							}
							else {
								adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
								redireciona(array('curso', $cursoVisualizado->getUrlCurso()));
							}
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_VALIDACAO_CAMPO_INPUT', array(texto('DADOS_CODIGO_INSCRICAO'))), 'erro');
							redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'inscricao'));
						}
					}
				}
				else {
					if ($cursoVisualizado->getVagas() == null || ($cursoVisualizado->getVagas() != null && $cursoVisualizado->getVagas() > $cursoVisualizado->getNumeroInscritos())) {
						if ($resultado = PerguntaInscricao::buscar($cursoVisualizado->getIdCurso(), NULL, NULL, false, 'idPergunta')) {
							$listaPerguntasInscricao	=	$resultado['listaResultados'];
	
							foreach ($listaPerguntasInscricao as $chave => $pergunta) {
								$listaAlternativasPergunta	=	PerguntaInscricaoAlternativa::buscar($pergunta['idPergunta']);
								$listaPerguntasInscricao[$chave]['alternativas']	=	$listaAlternativasPergunta['listaResultados'];
							}
							
							$possivelEditar		=	false;
							$possivelResponder	=	true;
							$idPerguntaEditada	=	NULL;
							
							if ($cursoVisualizado->getCodigoInscricao() != null) {
								$this->getSmarty()->assign('exibirCodigoInscricao', true);
							}
							
							$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_INSCRICAO') . ' - ' . $cursoVisualizado->getNome())));
							$this->getSmarty()->assign('TEXTO_NAVEGACAO', $cursoVisualizado->getNome() . ' > ' . texto('AREA_INSCRICAO'));
							
							$this->getSmarty()->assign('listaPerguntasInscricao', $listaPerguntasInscricao);
							$this->getSmarty()->assign('possivelEditar', $possivelEditar);
							$this->getSmarty()->assign('possivelResponder', $possivelResponder);
							$this->getSmarty()->assign('idPerguntaEditada', $idPerguntaEditada);
							$this->exibir('inscricao');
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'),'erro');
							redireciona($_SESSION['constructore']['URLOrigem']);
						}
					}
					else {
						adicionaMensagem(texto('MENSAGEM_ERRO_LOTACAO_ESGOTADA'), 'erro');
						redireciona($_SESSION['constructore']['URLOrigem']);
					}
				}
			}
			else {
				//Usuario ja esta inscrito
				redireciona(array('404'));
			}
		}
		else {
			//Curso nao existe
			redireciona(array('404'));
		}
	}
	else {
		//Usuario nao logado
		redireciona(array('404'));
	}
?>